Statistik Dekriptif

Pengertian

Statistik Deskriptif adalah sebuah representasi keseluruhan himpunan data spesifik dengan memberikan ringkasan pendek tentang sampel dan ukuran data.

Statistik deskriptif memberikan ringkasan sederhana tentang sempel dan pengamatan yang telah dilakukan. Ringkasan tersebut dapat berupa kuantitatif, yaitu: statistik yang tersaji dengan ringkas dan rapi yang dapat berupa table, diagram, ataupun grafik sehingga dapat memberikan informasi inti dari kumpulan data yang ada dengan mudah untuk dipahami. dari statistik deskriptif ini dapat memberikan informasi yang dapat berupa: ukuran pemusatan data, ukuran penyebaran data, juga kecenderungan suatu gugus data.

Tipe Statistik Deskriptif

Mean (rata-rata)

Mean merupakan rata-rata dari semua angka. Mean didapat dari hasil penjumlahan dari keseluruhan angka yang dibagi dengan banyaknya angka itu sendiri. Jika kita memiliki N data, kita dapat menghitung mean itu sendiri dengan menggunakan rumus berikut:

$$ \bar x ={\sum \limits_{i=1}^{n} x_i \over N} = {x_1 + x_2 + x_3 + ... + x_n \over N} $$ Dimana:
x bar = x rata-rata = nilai rata-rata sampel
x = data ke n
n = banyaknya data

Median

Median merupakan pusat data atau lebih sering dikatakan nilai tengah dari sebuah urutan data. Median disimbolkan dengan Me. nilai dari median akan sama dengan nilai Quartile 2 (Q2). Dalam mencari median, banyak(n) dari data ganjil dan genap memiliki cara perhitungan yang berbeda. Untuk mencari median kita dapat menggunakan rumus sebagai berikut:
Me=Q_2 =\left( \begin{matrix} n+1 \over 2 \end{matrix} \right), jika\quad n\quad ganjil
Me=Q_2 =\left( \begin{matrix} {xn \over 2 } {xn+1\over 2} \over 2 \end{matrix} \right), jika\quad n\quad genap

Dimana :
Me = Median dari kelompok data
n = banyak data

Modus

Modus adalah angka yang paling sering ditemukan dalam suatu himpunan angka. Modus didapat dengan mengumpulkan dan mengatur data untuk menghitung setiap frekuensi dari setiap hasil. Dan hasil dengan jumlah tertinggi merupakan modus dari himpunan angka tersebut. Untuk mencari modus dari sebuah himpunan angka dapat menggunakan rumus berikut:

$$ M_o = Tb + p{b_1 \over b_1 + b_2} $$ Dimana:
Mo = modus dari kelompok data
Tb = tepi bawah dari elemen modus
b1 = selisih frekuensi antara elemen modus dengan elemet sebelumnya
b2 = selisih frekuensi antara elemen modus dengan elemen sesudahnya
p = panjang interval

nilai b1 dan b2 –> adalah mutlak (selalu positif)

Varians

Varian adalah ukuran penyebaran setiap nilai dalam suatu himpunan data dari rata-rata. Dalam proses mendapatkan varian terdapat langkah yaitu yang harus dilakukan, yaitu: dengan mengambil ukuran jarak dari setiap nilai dan mengurangi rata-rata dari setiap nilai dalam data, kemudian hasil dari ukuran jarak tersebut dikuadratkan dan membagi jumlah kuadrat dengan jumlah nilai dalam himpunan data. Untuk menghitung varian terdapat formula yang dapat digunakan yaitu:

$$ \sigma^2 = {\sum \limits_{i=1}^{n} (x_i - \bar x)^2 \over n} $$ Dimana :
xi = titik data
x bar = rata-rata dari semua titik data
n = banyak dari dari anggota data

Standar Deviasi

Standar deviasi merupakan ukuran dispersi kumpulan data relatif terhadap rata-rata atau lebih simpelnya adalah akar kuadrat positif dari varian. Standar deviasi dihitung dengan mengakar kuadratkan nilai dari varians. jika titik data lebih dari rata-rata dalam kumpulan data maka, semakin tinggi standar deviasi. Untuk mencari standar deviasi kita dapat menggunakan formula berikut :
\sigma^ = \sqrt {{\sum \limits_{i=1}^{n} (x_i - \bar x)^2 \over n}}

Skewness

Skewness(kemiringan) adalah ketidaksimetrisan pada suatu distribusi statistik dimana kurva tampak condong ke kiri atau ke kanan. Skewness digunakan untuk menentukan sejauhmana perbedaan suatu distribusi dengan distribusi normal. Dalam distribusi normal grafik muncul seperti kurva berbentuk lonceng. ketika suatu distribusi mengalami kemiringan ke sebelah kanan dan ekor di sisi kanan kurva lebih panjang dari ekor sisi kiri kurva maka situasi ini dikatakan kemiringan positif dan sebaliknya dikatakan kemiringan negative. Skewness bisa dihitung menggunakan rumus sebagai berikut:
Skewness = {\sum \limits{i=1}^n (x_i - \bar x)^i \over (n- 1) \sigma^3}

Dimana :
xi = titik data
x bar = rata-rata dari distribusi
n = jumlah titik dalam distribusi
o = standar deviasi

Quartile

Quartile adalah irisan nilai dari hasil pembagian data menjadi empat bagian yang sama besar. Nilai-nilai dari quartile biasanya dilambangkan dengan Q1 untuk quartile bawah. Q1 ini mempunyai nilai 25% dari data. Q2 atau biasa disebut quartile tengah yang mempunyai nilai sama seperti median yaitu 50% dari data. dan Q3 sebagai quartile atas yang mempunyai nilai 75% dari data. Dalam mencari quatile kita dapat menggunakan rumus berikut ini:
Q_1 = (n + 1) {1\over 4}
Q_2 = (n + 1) {1\over 2}
Q_3 = (n + 1) {3\over 4}

Dimana :
Q = Nilai dari quartile
n = banyak dari himpunan data

Penerapan Statistik Deskriptif Menggunakan Python

Alat dan Bahan

Pada penerapan ini saya menggunakan 500 data random yang disimpan dalam bentuk .csv dan untuk mempermudah dalam penerapan tersebut, perlu disiapkan library python yang dapat didownload secara gratis.

dalam kasus ini, library python yang digunakan adalah sebagai berikut:

  1. pandas, digunakan untuk data manajemen dan data analysis.
  2. scipy, merupakan library berisi kumpulan algoritma dan fungsi matematika.

Pertama

pada langkah ini kita memasukkan library yang telah disiapkan sebelumya

import pandas as pd
from scipy import stats

Kedua

dan selanjutnya memuat data csv yang telah disiapkan

df = pd.read_csv('sample_data.csv', sep=';')

Ketiga

kemudian membuat data penyimpanan (dictionary) yang menampung nilai yang akan ditampilkan. selanjutnya mengambil data dari beberapa kolom pada csv dengan cara diiterasi serta, menghitungnya dengan berbagai metode yang telah disiapkan oleh pandas itu sendiri. kemudian hasil tersebut di disimpan pada penyimpanan tadi
data = {"Stats" : ['Min','Max','Mean','Standard Deviasi','Variasi','Skewnes',
                   'Quartile 1','Quartile 2', 'Quartile 3', 'Median','Modus']}
for i in df.columns:
    data[i] = [df[i].min(), df[i].max(), df[i].mean(),
                round(df[i].std(), 2),round(df[i].var(), 2),
                round(df[i].skew(), 2), df[i].quantile(0.25),
                df[i].quantile(0.5), df[i].quantile(0.75),
                df[i].median(), stats.mode(df[i]).mode[0]]

Keempat

terakhir adalah menvisualisasikan hasil tersebut dalam bentuk dataframe

tes = pd.DataFrame(data, columns = ['Stats'] + [x for x in df.columns])
tes

setelah jalankan, program tersebut akan menampilkan seperti berikut:

Stats X1 X2 X3 X4
0 Min 30.000 30.000 30.000 30.000
1 Max 80.000 80.000 80.000 80.000
2 Mean 54.608 53.524 54.996 55.046
3 Standard Deviasi 14.720 15.110 14.470 14.560
4 Variasi 216.750 228.440 209.360 211.970
5 Skewnes 0.050 0.110 0.020 -0.020
6 Quartile 1 42.000 40.000 43.000 43.750
7 Quartile 2 54.000 52.000 55.000 54.000
8 Quartile 3 68.000 67.000 67.000 67.000
9 Median 54.000 52.000 55.000 54.000
10 Modus 77.000 38.000 38.000 54.000

Mencari Outlier

Outlier merupakan suatu nilai dari pada sekumpulan data yang lain atau berbeda dibandingkan biasanya serta tidak menggambarkan karakteristik data tersebut. Sebuah outlier mungkin karena variabilitas dalam pengukuran atau mungkin menunjukkan kesalahan eksperimental. Standarisasi Data deteksi data dengan standarisasi pada prinsipnya mengubah nilai data menjadi bentuk Z, dengan menggunakan formula dari Z score, yaitu:
z = {(X - \mu) \over \sigma}
Pada data csv tersebut, saya lakukan modifikasi dengan memberikan data sampah(noise) yang pada sebagian kolom. dan dalam pencarian outlier ini saya menggunakan formula dari z score yang diterapkan pada python, yaitu sebagai berikut:
def dekteksi_outlier(df_in):
    outliers = []
    threshold = 3
    for col_name in df_in:
        mean = df_in[col_name].mean()
        std = df_in[col_name].std()
        i=1
        for y in df_in[col_name]:
            z_score = (y - mean) / std
            if abs(z_score) > threshold:
                outliers.append([col_name,y,i])
            i+=1
    return outliers

for i in dekteksi_outlier(df):
    print('Data sampah',i[1],'dikolom',i[0],'pada baris',i[2])

dari fungsi diatas akan mengembalikan outlier dari data csv ditersebut.

Data sampah ( 322 ) dikolom X1 pada baris 453
Data sampah ( 600 ) dikolom X1 pada baris 489
Data sampah ( 115 ) dikolom X2 pada baris 449
Data sampah ( 336 ) dikolom X3 pada baris 406
Data sampah ( 145 ) dikolom X4 pada baris 407
Data sampah ( 120 ) dikolom X4 pada baris 413

Source

Seluruh file percobaan ada pada link berikut : disini

Referensi